[INFO] fetching crate spanner-rs 0.3.0...
[INFO] checking spanner-rs-0.3.0 against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] extracting crate spanner-rs 0.3.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate spanner-rs 0.3.0
[INFO] finished tweaking crates.io crate spanner-rs 0.3.0
[INFO] tweaked toml for crates.io crate spanner-rs 0.3.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate spanner-rs 0.3.0 on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 309 packages to latest compatible versions
[INFO] [stderr]       Adding base64 v0.13.1 (available: v0.22.1)
[INFO] [stderr]       Adding bb8 v0.8.6 (available: v0.9.0)
[INFO] [stderr]       Adding bigdecimal v0.3.1 (available: v0.4.8)
[INFO] [stderr]       Adding ctor v0.1.26 (available: v0.5.0)
[INFO] [stderr]       Adding derive_builder v0.11.2 (available: v0.20.2)
[INFO] [stderr]       Adding env_logger v0.9.3 (available: v0.11.8)
[INFO] [stderr]       Adding gcp_auth v0.7.6 (available: v0.12.3)
[INFO] [stderr]       Adding http v0.2.12 (available: v1.3.1)
[INFO] [stderr]       Adding prost v0.11.9 (available: v0.14.1)
[INFO] [stderr]       Adding prost-types v0.11.9 (available: v0.14.1)
[INFO] [stderr]       Adding reqwest v0.11.27 (available: v0.12.23)
[INFO] [stderr]       Adding testcontainers v0.14.0 (available: v0.25.0)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.16)
[INFO] [stderr]       Adding tonic v0.8.3 (available: v0.14.1)
[INFO] [stderr]       Adding tower v0.4.13 (available: v0.5.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bb8 v0.8.6
[INFO] [stderr]   Downloaded gcp_auth v0.7.6
[INFO] [stderr]   Downloaded google-api-proto v1.710.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 93a0acb7d6f7541a1cfcb1ee62304ed185b80f1922f3a17c32a0f9376b1f5180
[INFO] running `Command { std: "docker" "start" "-a" "93a0acb7d6f7541a1cfcb1ee62304ed185b80f1922f3a17c32a0f9376b1f5180", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93a0acb7d6f7541a1cfcb1ee62304ed185b80f1922f3a17c32a0f9376b1f5180", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93a0acb7d6f7541a1cfcb1ee62304ed185b80f1922f3a17c32a0f9376b1f5180", kill_on_drop: false }`
[INFO] [stdout] 93a0acb7d6f7541a1cfcb1ee62304ed185b80f1922f3a17c32a0f9376b1f5180
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d7e1a9bc946f511ae2d31624ba716fe3f4ee5de5a840dc37df267f7951ed5b85
[INFO] running `Command { std: "docker" "start" "-a" "d7e1a9bc946f511ae2d31624ba716fe3f4ee5de5a840dc37df267f7951ed5b85", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking indexmap v2.11.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking bitflags v2.9.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking untrusted v0.7.1
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]    Compiling rustls v0.20.9
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking rustls-native-certs v0.6.3
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking num-conv v0.1.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking time-core v0.1.4
[INFO] [stderr]     Checking dirs-next v2.0.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]     Checking bigdecimal v0.3.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking which v4.4.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling ctor v0.1.26
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling derive_builder_core v0.11.2
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking webpki v0.22.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]     Checking prost v0.11.9
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_builder_macro v0.11.2
[INFO] [stderr]     Checking derive_builder v0.11.2
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking prost-types v0.11.9
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking prost v0.13.5
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking prost-types v0.13.5
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking serde_with v1.14.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-rustls v0.23.4
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking tokio-io-timeout v1.2.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking bb8 v0.8.6
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking bollard-stubs v1.41.0
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper v1.7.0
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]     Checking tonic v0.12.3
[INFO] [stderr]     Checking hyper-rustls v0.23.2
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking gcp_auth v0.7.6
[INFO] [stderr]     Checking testcontainers v0.14.0
[INFO] [stderr]     Checking google-api-proto v1.710.0
[INFO] [stderr]     Checking tonic v0.8.3
[INFO] [stderr]     Checking spanner-rs v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0271]: type mismatch resolving `<Either<..., ...> as Service<...>>::Response == Response<_>`
[INFO] [stdout]    --> src/connection/grpc.rs:57:19
[INFO] [stdout]     |
[INFO] [stdout] 57  |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Response<_>`, found `Response<Body>`
[INFO] [stdout]     |
[INFO] [stdout] note: two different versions of crate `http` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-0.2.12/src/response.rs:179:1
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct Response<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^ this is the found type `http::Response`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/response.rs:180:1
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct Response<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `http::response::Response`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection/grpc.rs:9:5
[INFO] [stdout]     |
[INFO] [stdout] 9   | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]     |     ---------------- one version of crate `http` used here, as a dependency of crate `http_body_util`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:4:5
[INFO] [stdout]     |
[INFO] [stdout] 4   | use http::HeaderValue;
[INFO] [stdout]     |     ---- one version of crate `http` used here, as a direct dependency of the current crate
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-552c9fef6a6d74d1.long-type-5736836933028265719.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: expected a `FnMut(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>)` closure, found `AuthFilter`
[INFO] [stdout]   --> src/connection/grpc.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an `FnMut(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>)` closure, found `AuthFilter`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FnMut(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>)` is not implemented for `AuthFilter`
[INFO] [stdout] note: there are multiple different versions of crate `tonic` in the dependency graph
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.12.3/src/client/service.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait GrpcService<ReqBody> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/connection/grpc.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]    |     ---------------- one version of crate `tonic` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/client.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout] 5  | use tonic::Code;
[INFO] [stdout]    |     ----- one version of crate `tonic` used here, as a direct dependency of the current crate
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum Either<A, B> {
[INFO] [stdout]    | --------------------- this type doesn't implement the required trait
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/client/service.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait GrpcService<ReqBody> {
[INFO] [stdout]    | ------------------------------ this is the found trait
[INFO] [stdout]    = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]    = note: required for `AuthFilter` to implement `AsyncPredicate<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: required for `AsyncFilter<Channel, AuthFilter>` to implement `tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-552c9fef6a6d74d1.long-type-1440920215103801915.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Channel: Service<Request<UnsyncBoxBody<Bytes, Status>>>` is not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>` is not implemented for `Channel`
[INFO] [stdout]            but trait `Service<http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::Status>>>` is implemented for it
[INFO] [stdout]    = help: for that trait implementation, expected `http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::Status>>`, found `http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-552c9fef6a6d74d1.long-type-5374842947610544648.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Either<..., ...> as Service<...>>::Response == Response<_>`
[INFO] [stdout]     --> src/connection/grpc.rs:57:38
[INFO] [stdout]      |
[INFO] [stdout] 57   |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]      |                   ------------------ ^^^^^^^ expected `Response<_>`, found `Response<Body>`
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `http` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-0.2.12/src/response.rs:179:1
[INFO] [stdout]      |
[INFO] [stdout] 179  | pub struct Response<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^ this is the found type `http::Response`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/response.rs:180:1
[INFO] [stdout]      |
[INFO] [stdout] 180  | pub struct Response<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `http::response::Response`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `http` used here, as a dependency of crate `http_body_util`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/auth.rs:4:5
[INFO] [stdout]      |
[INFO] [stdout] 4    | use http::HeaderValue;
[INFO] [stdout]      |     ---- one version of crate `http` used here, as a direct dependency of the current crate
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]      = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: required by a bound in `SpannerClient::<T>::new`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/google-api-proto-1.710.0/src/google/spanner/v1/mod.rs:2601:12
[INFO] [stdout]      |
[INFO] [stdout] 2601 |         T: tonic::client::GrpcService<tonic::body::BoxBody>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `SpannerClient::<T>::new`
[INFO] [stdout] ...
[INFO] [stdout] 2606 |         pub fn new(inner: T) -> Self {
[INFO] [stdout]      |                --- required by a bound in this associated function
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-552c9fef6a6d74d1.long-type-3931365789493794708.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Either<..., ...> as Service<...>>::Response == Response<_>`
[INFO] [stdout]    --> src/connection/grpc.rs:57:19
[INFO] [stdout]     |
[INFO] [stdout] 57  |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Response<_>`, found `Response<Body>`
[INFO] [stdout]     |
[INFO] [stdout] note: two different versions of crate `http` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-0.2.12/src/response.rs:179:1
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct Response<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^ this is the found type `http::Response`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/response.rs:180:1
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct Response<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `http::response::Response`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/connection/grpc.rs:9:5
[INFO] [stdout]     |
[INFO] [stdout] 9   | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]     |     ---------------- one version of crate `http` used here, as a dependency of crate `http_body_util`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:4:5
[INFO] [stdout]     |
[INFO] [stdout] 4   | use http::HeaderValue;
[INFO] [stdout]     |     ---- one version of crate `http` used here, as a direct dependency of the current crate
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-471164cd5f888628.long-type-7138885264753249791.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `create_session` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |           let response = self
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 66 | |             .spanner
[INFO] [stdout] 67 | |             .create_session(Request::new(CreateSessionRequest {
[INFO] [stdout]    | |             -^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/auth.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 |   pub(crate) struct AuthFilter {
[INFO] [stdout]    |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub enum Either<A, B> {
[INFO] [stdout]    |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub struct Channel {
[INFO] [stdout]    |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]            `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `create_session`, perhaps you need to implement it
[INFO] [stdout]   --> src/connection.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) trait Connection
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: expected a `FnMut(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>)` closure, found `AuthFilter`
[INFO] [stdout]   --> src/connection/grpc.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected an `FnMut(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>)` closure, found `AuthFilter`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FnMut(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>)` is not implemented for `AuthFilter`
[INFO] [stdout] note: there are multiple different versions of crate `tonic` in the dependency graph
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.12.3/src/client/service.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait GrpcService<ReqBody> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/connection/grpc.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]    |     ---------------- one version of crate `tonic` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/client.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout] 5  | use tonic::Code;
[INFO] [stdout]    |     ----- one version of crate `tonic` used here, as a direct dependency of the current crate
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum Either<A, B> {
[INFO] [stdout]    | --------------------- this type doesn't implement the required trait
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/client/service.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait GrpcService<ReqBody> {
[INFO] [stdout]    | ------------------------------ this is the found trait
[INFO] [stdout]    = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]    = note: required for `AuthFilter` to implement `AsyncPredicate<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: required for `AsyncFilter<Channel, AuthFilter>` to implement `tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: 1 redundant requirement hidden
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-471164cd5f888628.long-type-12184369273477843122.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Channel: Service<Request<UnsyncBoxBody<Bytes, Status>>>` is not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>` is not implemented for `Channel`
[INFO] [stdout]            but trait `Service<http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::Status>>>` is implemented for it
[INFO] [stdout]    = help: for that trait implementation, expected `http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::Status>>`, found `http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]    = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-471164cd5f888628.long-type-7604422144538844241.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<Either<..., ...> as Service<...>>::Response == Response<_>`
[INFO] [stdout]     --> src/connection/grpc.rs:57:38
[INFO] [stdout]      |
[INFO] [stdout] 57   |     let spanner = SpannerClient::new(channel);
[INFO] [stdout]      |                   ------------------ ^^^^^^^ expected `Response<_>`, found `Response<Body>`
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `http` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-0.2.12/src/response.rs:179:1
[INFO] [stdout]      |
[INFO] [stdout] 179  | pub struct Response<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^ this is the found type `http::Response`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/response.rs:180:1
[INFO] [stdout]      |
[INFO] [stdout] 180  | pub struct Response<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `http::response::Response`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `http` used here, as a dependency of crate `http_body_util`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/auth.rs:4:5
[INFO] [stdout]      |
[INFO] [stdout] 4    | use http::HeaderValue;
[INFO] [stdout]      |     ---- one version of crate `http` used here, as a direct dependency of the current crate
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]      = note: required for `Either<AsyncFilter<Channel, AuthFilter>, Channel>` to implement `tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: required by a bound in `SpannerClient::<T>::new`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/google-api-proto-1.710.0/src/google/spanner/v1/mod.rs:2601:12
[INFO] [stdout]      |
[INFO] [stdout] 2601 |         T: tonic::client::GrpcService<tonic::body::BoxBody>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `SpannerClient::<T>::new`
[INFO] [stdout] ...
[INFO] [stdout] 2606 |         pub fn new(inner: T) -> Self {
[INFO] [stdout]      |                --- required by a bound in this associated function
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/spanner_rs-471164cd5f888628.long-type-4602216802919854682.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `delete_session` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | /         self.spanner
[INFO] [stdout] 76 | |             .delete_session(Request::new(DeleteSessionRequest {
[INFO] [stdout]    | |             -^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/auth.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 |   pub(crate) struct AuthFilter {
[INFO] [stdout]    |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub enum Either<A, B> {
[INFO] [stdout]    |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub struct Channel {
[INFO] [stdout]    |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]            `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `delete_session`, perhaps you need to implement it
[INFO] [stdout]   --> src/connection.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) trait Connection
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `commit` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 84 | /         self.spanner
[INFO] [stdout] 85 | |             .commit(Request::new(CommitRequest {
[INFO] [stdout]    | |             -^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/auth.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 |   pub(crate) struct AuthFilter {
[INFO] [stdout]    |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub enum Either<A, B> {
[INFO] [stdout]    |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub struct Channel {
[INFO] [stdout]    |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]            `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `commit`, perhaps you need to implement it
[INFO] [stdout]   --> src/connection.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) trait Connection
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `max_commit_delay` in initializer of `CommitRequest`
[INFO] [stdout]   --> src/connection/grpc.rs:85:34
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .commit(Request::new(CommitRequest {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^ missing `max_commit_delay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `rollback` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/connection/grpc.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 99  | /         self.spanner
[INFO] [stdout] 100 | |             .rollback(Request::new(RollbackRequest {
[INFO] [stdout]     | |             -^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  |   pub(crate) struct AuthFilter {
[INFO] [stdout]     |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout] 22  |   pub enum Either<A, B> {
[INFO] [stdout]     |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout] 69  |   pub struct Channel {
[INFO] [stdout]     |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]             `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `rollback`, perhaps you need to implement it
[INFO] [stdout]    --> src/connection.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub(crate) trait Connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `execute_sql` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/connection/grpc.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 126 | /         self.spanner
[INFO] [stdout] 127 | |             .execute_sql(Request::new(ExecuteSqlRequest {
[INFO] [stdout]     | |             -^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  |   pub(crate) struct AuthFilter {
[INFO] [stdout]     |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout] 22  |   pub enum Either<A, B> {
[INFO] [stdout]     |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout] 69  |   pub struct Channel {
[INFO] [stdout]     |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]             `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `execute_sql`, perhaps you need to implement it
[INFO] [stdout]    --> src/connection.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub(crate) trait Connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/connection/grpc.rs:131:30
[INFO] [stdout]      |
[INFO] [stdout] 131  |                 params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                         ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `prost_types::protobuf::Struct`, found `prost_types::Struct`
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `prost_types` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.11.9/src/protobuf.rs:2110:1
[INFO] [stdout]      |
[INFO] [stdout] 2110 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the found type `prost_types::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.13.5/src/protobuf.rs:2120:1
[INFO] [stdout]      |
[INFO] [stdout] 2120 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the expected type `prost_types::protobuf::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `prost_types` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/value.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use prost_types::value::Kind;
[INFO] [stdout]      |     ----------- one version of crate `prost_types` used here, as a direct dependency of the current crate
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the type constructed contains `prost_types::Struct` due to the type of the argument passed
[INFO] [stdout]     --> src/connection/grpc.rs:131:25
[INFO] [stdout]      |
[INFO] [stdout] 131  |                 params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                         ^^^^^--------------------------------------^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:601:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing fields `data_boost_enabled` and `directed_read_options` in initializer of `ExecuteSqlRequest`
[INFO] [stdout]    --> src/connection/grpc.rs:127:39
[INFO] [stdout]     |
[INFO] [stdout] 127 |             .execute_sql(Request::new(ExecuteSqlRequest {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^ missing `data_boost_enabled` and `directed_read_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `execute_batch_dml` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/connection/grpc.rs:159:14
[INFO] [stdout]     |
[INFO] [stdout] 157 |           let response = self
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 158 | |             .spanner
[INFO] [stdout] 159 | |             .execute_batch_dml(Request::new(ExecuteBatchDmlRequest {
[INFO] [stdout]     | |             -^^^^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  |   pub(crate) struct AuthFilter {
[INFO] [stdout]     |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout] 22  |   pub enum Either<A, B> {
[INFO] [stdout]     |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout] 69  |   pub struct Channel {
[INFO] [stdout]     |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]             `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `execute_batch_dml`, perhaps you need to implement it
[INFO] [stdout]    --> src/connection.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub(crate) trait Connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `create_session` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |           let response = self
[INFO] [stdout]    |  ________________________-
[INFO] [stdout] 66 | |             .spanner
[INFO] [stdout] 67 | |             .create_session(Request::new(CreateSessionRequest {
[INFO] [stdout]    | |             -^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/auth.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 |   pub(crate) struct AuthFilter {
[INFO] [stdout]    |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub enum Either<A, B> {
[INFO] [stdout]    |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub struct Channel {
[INFO] [stdout]    |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]            `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `create_session`, perhaps you need to implement it
[INFO] [stdout]   --> src/connection.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) trait Connection
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `delete_session` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:76:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | /         self.spanner
[INFO] [stdout] 76 | |             .delete_session(Request::new(DeleteSessionRequest {
[INFO] [stdout]    | |             -^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/auth.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 |   pub(crate) struct AuthFilter {
[INFO] [stdout]    |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub enum Either<A, B> {
[INFO] [stdout]    |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub struct Channel {
[INFO] [stdout]    |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]            `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `delete_session`, perhaps you need to implement it
[INFO] [stdout]   --> src/connection.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) trait Connection
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `commit` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/connection/grpc.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 84 | /         self.spanner
[INFO] [stdout] 85 | |             .commit(Request::new(CommitRequest {
[INFO] [stdout]    | |             -^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/auth.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 |   pub(crate) struct AuthFilter {
[INFO] [stdout]    |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub enum Either<A, B> {
[INFO] [stdout]    |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub struct Channel {
[INFO] [stdout]    |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]            `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]            which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]            `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]            which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]   --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `commit`, perhaps you need to implement it
[INFO] [stdout]   --> src/connection.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) trait Connection
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/result_set.rs:181:62
[INFO] [stdout]      |
[INFO] [stdout] 181  |                     .map(|(value, tpe)| Value::try_from(tpe, value.clone()))
[INFO] [stdout]      |                                         ---------------      ^^^^^^^^^^^^^ expected `prost_types::Value`, found `prost_types::protobuf::Value`
[INFO] [stdout]      |                                         |
[INFO] [stdout]      |                                         arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `prost_types` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.11.9/src/protobuf.rs:2126:1
[INFO] [stdout]      |
[INFO] [stdout] 2126 | pub struct Value {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^ this is the expected type `prost_types::Value`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.13.5/src/protobuf.rs:2136:1
[INFO] [stdout]      |
[INFO] [stdout] 2136 | pub struct Value {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^ this is the found type `prost_types::protobuf::Value`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/value.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use prost_types::value::Kind;
[INFO] [stdout]      |     ----------- one version of crate `prost_types` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `prost_types` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/value.rs:121:19
[INFO] [stdout]      |
[INFO] [stdout] 121  |     pub(crate) fn try_from(tpe: &Type, value: SpannerValue) -> Result<Self, crate::Error> {
[INFO] [stdout]      |                   ^^^^^^^^             -------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `max_commit_delay` in initializer of `CommitRequest`
[INFO] [stdout]   --> src/connection/grpc.rs:85:34
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .commit(Request::new(CommitRequest {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^ missing `max_commit_delay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/statement.rs:28:26
[INFO] [stdout]      |
[INFO] [stdout] 28   |             params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                     ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `prost_types::protobuf::Struct`, found `prost_types::Struct`
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `prost_types` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.11.9/src/protobuf.rs:2110:1
[INFO] [stdout]      |
[INFO] [stdout] 2110 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the found type `prost_types::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.13.5/src/protobuf.rs:2120:1
[INFO] [stdout]      |
[INFO] [stdout] 2120 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the expected type `prost_types::protobuf::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `prost_types` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/value.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use prost_types::value::Kind;
[INFO] [stdout]      |     ----------- one version of crate `prost_types` used here, as a direct dependency of the current crate
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the type constructed contains `prost_types::Struct` due to the type of the argument passed
[INFO] [stdout]     --> src/statement.rs:28:21
[INFO] [stdout]      |
[INFO] [stdout] 28   |             params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                     ^^^^^--------------------------------------^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:601:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `rollback` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/connection/grpc.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 99  | /         self.spanner
[INFO] [stdout] 100 | |             .rollback(Request::new(RollbackRequest {
[INFO] [stdout]     | |             -^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  |   pub(crate) struct AuthFilter {
[INFO] [stdout]     |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout] 22  |   pub enum Either<A, B> {
[INFO] [stdout]     |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout] 69  |   pub struct Channel {
[INFO] [stdout]     |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]             `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `rollback`, perhaps you need to implement it
[INFO] [stdout]    --> src/connection.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub(crate) trait Connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `exclude_txn_from_change_streams` in initializer of `TransactionOptions`
[INFO] [stdout]   --> src/transaction.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     proto::TransactionOptions {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `exclude_txn_from_change_streams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `read_lock_mode` in initializer of `google_api_proto::google::spanner::v1::transaction_options::ReadWrite`
[INFO] [stdout]    --> src/transaction.rs:111:29
[INFO] [stdout]     |
[INFO] [stdout] 111 | ...                   proto::transaction_options::ReadWrite {},
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `read_lock_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `exclude_txn_from_change_streams` in initializer of `TransactionOptions`
[INFO] [stdout]    --> src/transaction.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     proto::TransactionOptions {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `exclude_txn_from_change_streams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `google_api_proto::google::spanner::v1::TypeCode::from_i32`: Use the TryFrom<i32> implementation instead
[INFO] [stdout]    --> src/types.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |         match proto::TypeCode::from_i32(value.code) {
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:277:35
[INFO] [stdout]     |
[INFO] [stdout] 277 |             Type::Array(inner) => proto::Type {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:283:49
[INFO] [stdout]     |
[INFO] [stdout] 283 |             Type::Struct(StructType(fields)) => proto::Type {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:297:22
[INFO] [stdout]     |
[INFO] [stdout] 297 |             other => proto::Type {
[INFO] [stdout]     |                      ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `execute_sql` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/connection/grpc.rs:127:14
[INFO] [stdout]     |
[INFO] [stdout] 126 | /         self.spanner
[INFO] [stdout] 127 | |             .execute_sql(Request::new(ExecuteSqlRequest {
[INFO] [stdout]     | |             -^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  |   pub(crate) struct AuthFilter {
[INFO] [stdout]     |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout] 22  |   pub enum Either<A, B> {
[INFO] [stdout]     |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout] 69  |   pub struct Channel {
[INFO] [stdout]     |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]             `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `execute_sql`, perhaps you need to implement it
[INFO] [stdout]    --> src/connection.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub(crate) trait Connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/connection/grpc.rs:131:30
[INFO] [stdout]      |
[INFO] [stdout] 131  |                 params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                         ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `prost_types::protobuf::Struct`, found `prost_types::Struct`
[INFO] [stdout]      |                         |
[INFO] [stdout]      |                         arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `prost_types` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.11.9/src/protobuf.rs:2110:1
[INFO] [stdout]      |
[INFO] [stdout] 2110 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the found type `prost_types::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.13.5/src/protobuf.rs:2120:1
[INFO] [stdout]      |
[INFO] [stdout] 2120 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the expected type `prost_types::protobuf::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `prost_types` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/value.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use prost_types::value::Kind;
[INFO] [stdout]      |     ----------- one version of crate `prost_types` used here, as a direct dependency of the current crate
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the type constructed contains `prost_types::Struct` due to the type of the argument passed
[INFO] [stdout]     --> src/connection/grpc.rs:131:25
[INFO] [stdout]      |
[INFO] [stdout] 131  |                 params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                         ^^^^^--------------------------------------^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:601:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing fields `data_boost_enabled` and `directed_read_options` in initializer of `ExecuteSqlRequest`
[INFO] [stdout]    --> src/connection/grpc.rs:127:39
[INFO] [stdout]     |
[INFO] [stdout] 127 |             .execute_sql(Request::new(ExecuteSqlRequest {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^ missing `data_boost_enabled` and `directed_read_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `execute_batch_dml` exists for struct `SpannerClient<Either<AsyncFilter<Channel, AuthFilter>, Channel>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/connection/grpc.rs:159:14
[INFO] [stdout]     |
[INFO] [stdout] 157 |           let response = self
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 158 | |             .spanner
[INFO] [stdout] 159 | |             .execute_batch_dml(Request::new(ExecuteBatchDmlRequest {
[INFO] [stdout]     | |             -^^^^^^^^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/auth.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  |   pub(crate) struct AuthFilter {
[INFO] [stdout]     |   ---------------------------- doesn't satisfy `<_ as FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>>::Output = _`, `_: FnMut<(Request<UnsyncBoxBody<Bytes, Status>>,)>` or `_: FnOnce<(Request<UnsyncBoxBody<Bytes, Status>>,)>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tower-0.4.13/src/util/either.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout] 22  |   pub enum Either<A, B> {
[INFO] [stdout]     |   --------------------- doesn't satisfy `<_ as Service<Request<UnsyncBoxBody<Bytes, Status>>>>::Response = Response<_>` or `_: GrpcService<UnsyncBoxBody<Bytes, Status>>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tonic-0.8.3/src/transport/channel/mod.rs:69:1
[INFO] [stdout]     |
[INFO] [stdout] 69  |   pub struct Channel {
[INFO] [stdout]     |   ------------------ doesn't satisfy `_: Service<Request<UnsyncBoxBody<Bytes, Status>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             `AuthFilter: FnMut<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             `Channel: tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
[INFO] [stdout]             `AuthFilter: FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>`
[INFO] [stdout]             which is required by `<AuthFilter as FnOnce<(http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>,)>>::Output = _`
[INFO] [stdout]             `<Either<AsyncFilter<Channel, AuthFilter>, Channel> as tower::Service<http::request::Request<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = http::response::Response<_>`
[INFO] [stdout]             which is required by `Either<AsyncFilter<Channel, AuthFilter>, Channel>: tonic::client::service::GrpcService<http_body_util::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
[INFO] [stdout] note: the traits `FnMut` and `FnOnce` must be implemented
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/ops/function.rs:165:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `Connection` defines an item `execute_batch_dml`, perhaps you need to implement it
[INFO] [stdout]    --> src/connection.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub(crate) trait Connection
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/result_set.rs:181:62
[INFO] [stdout]      |
[INFO] [stdout] 181  |                     .map(|(value, tpe)| Value::try_from(tpe, value.clone()))
[INFO] [stdout]      |                                         ---------------      ^^^^^^^^^^^^^ expected `prost_types::Value`, found `prost_types::protobuf::Value`
[INFO] [stdout]      |                                         |
[INFO] [stdout]      |                                         arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `prost_types` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.11.9/src/protobuf.rs:2126:1
[INFO] [stdout]      |
[INFO] [stdout] 2126 | pub struct Value {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^ this is the expected type `prost_types::Value`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.13.5/src/protobuf.rs:2136:1
[INFO] [stdout]      |
[INFO] [stdout] 2136 | pub struct Value {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^ this is the found type `prost_types::protobuf::Value`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/value.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use prost_types::value::Kind;
[INFO] [stdout]      |     ----------- one version of crate `prost_types` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `prost_types` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> src/value.rs:121:19
[INFO] [stdout]      |
[INFO] [stdout] 121  |     pub(crate) fn try_from(tpe: &Type, value: SpannerValue) -> Result<Self, crate::Error> {
[INFO] [stdout]      |                   ^^^^^^^^             -------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/statement.rs:28:26
[INFO] [stdout]      |
[INFO] [stdout] 28   |             params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                     ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `prost_types::protobuf::Struct`, found `prost_types::Struct`
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     arguments to this enum variant are incorrect
[INFO] [stdout]      |
[INFO] [stdout] note: two different versions of crate `prost_types` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.11.9/src/protobuf.rs:2110:1
[INFO] [stdout]      |
[INFO] [stdout] 2110 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the found type `prost_types::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/prost-types-0.13.5/src/protobuf.rs:2120:1
[INFO] [stdout]      |
[INFO] [stdout] 2120 | pub struct Struct {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^ this is the expected type `prost_types::protobuf::Struct`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/connection/grpc.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use google_api_proto::google::spanner::v1::{self as proto, ExecuteBatchDmlRequest};
[INFO] [stdout]      |     ---------------- one version of crate `prost_types` used here, as a dependency of crate `google_api_proto`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/value.rs:9:5
[INFO] [stdout]      |
[INFO] [stdout] 9    | use prost_types::value::Kind;
[INFO] [stdout]      |     ----------- one version of crate `prost_types` used here, as a direct dependency of the current crate
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the type constructed contains `prost_types::Struct` due to the type of the argument passed
[INFO] [stdout]     --> src/statement.rs:28:21
[INFO] [stdout]      |
[INFO] [stdout] 28   |             params: Some(prost_types::Struct { fields: params }),
[INFO] [stdout]      |                     ^^^^^--------------------------------------^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          this argument influences the type of `Some`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]     --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:601:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Some(TypeCode::Float32)`, `Some(TypeCode::Proto)` and `Some(TypeCode::Enum)` not covered
[INFO] [stdout]    --> src/types.rs:218:15
[INFO] [stdout]     |
[INFO] [stdout] 218 |         match proto::TypeCode::from_i32(value.code) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ patterns `Some(TypeCode::Float32)`, `Some(TypeCode::Proto)` and `Some(TypeCode::Enum)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `std::option::Option<TypeCode>` defined here
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:593:1
[INFO] [stdout]    ::: /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:601:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: not covered
[INFO] [stdout]     = note: the matched value is of type `std::option::Option<TypeCode>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 269 ~             ))),
[INFO] [stdout] 270 ~             Some(TypeCode::Float32) | Some(TypeCode::Proto) | Some(TypeCode::Enum) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `exclude_txn_from_change_streams` in initializer of `TransactionOptions`
[INFO] [stdout]   --> src/transaction.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     proto::TransactionOptions {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `exclude_txn_from_change_streams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `read_lock_mode` in initializer of `google_api_proto::google::spanner::v1::transaction_options::ReadWrite`
[INFO] [stdout]    --> src/transaction.rs:111:29
[INFO] [stdout]     |
[INFO] [stdout] 111 | ...                   proto::transaction_options::ReadWrite {},
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `read_lock_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `exclude_txn_from_change_streams` in initializer of `TransactionOptions`
[INFO] [stdout]    --> src/transaction.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                     proto::TransactionOptions {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `exclude_txn_from_change_streams`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `google_api_proto::google::spanner::v1::TypeCode::from_i32`: Use the TryFrom<i32> implementation instead
[INFO] [stdout]    --> src/types.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |         match proto::TypeCode::from_i32(value.code) {
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:277:35
[INFO] [stdout]     |
[INFO] [stdout] 277 |             Type::Array(inner) => proto::Type {
[INFO] [stdout]     |                                   ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:283:49
[INFO] [stdout]     |
[INFO] [stdout] 283 |             Type::Struct(StructType(fields)) => proto::Type {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:297:22
[INFO] [stdout]     |
[INFO] [stdout] 297 |             other => proto::Type {
[INFO] [stdout]     |                      ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:321:9
[INFO] [stdout]     |
[INFO] [stdout] 321 |         proto::Type {
[INFO] [stdout]     |         ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |         proto::Type {
[INFO] [stdout]     |         ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:339:9
[INFO] [stdout]     |
[INFO] [stdout] 339 |         proto::Type {
[INFO] [stdout]     |         ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:385:13
[INFO] [stdout]     |
[INFO] [stdout] 385 |             proto::Type {
[INFO] [stdout]     |             ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:410:23
[INFO] [stdout]     |
[INFO] [stdout] 410 |         let invalid = proto::Type {
[INFO] [stdout]     |                       ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0063, E0271, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:474:38
[INFO] [stdout]     |
[INFO] [stdout] 474 |                         r#type: Some(proto::Type {
[INFO] [stdout]     |                                      ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:468:13
[INFO] [stdout]     |
[INFO] [stdout] 468 |             proto::Type {
[INFO] [stdout]     |             ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `proto_type_fqn` in initializer of `google_api_proto::google::spanner::v1::Type`
[INFO] [stdout]    --> src/types.rs:486:23
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let invalid = proto::Type {
[INFO] [stdout]     |                       ^^^^^^^^^^^ missing `proto_type_fqn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `spanner-rs` (lib) due to 22 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]    --> src/value.rs:351:36
[INFO] [stdout]     |
[INFO] [stdout] 351 |             Value::Date(NaiveDate::from_ymd(2021, 10, 1)),
[INFO] [stdout]     |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/value.rs:521:47
[INFO] [stdout]     |
[INFO] [stdout] 521 |             Value::Timestamp(DateTime::<Utc>::from_utc(
[INFO] [stdout]     |                                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]    --> src/value.rs:522:28
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 NaiveDate::from_ymd(2021, 10, 1).and_hms_nano(20, 56, 34, 756_433_987),
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms_nano`: use `and_hms_nano_opt()` instead
[INFO] [stdout]    --> src/value.rs:522:50
[INFO] [stdout]     |
[INFO] [stdout] 522 |                 NaiveDate::from_ymd(2021, 10, 1).and_hms_nano(20, 56, 34, 756_433_987),
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Some(TypeCode::Float32)`, `Some(TypeCode::Proto)` and `Some(TypeCode::Enum)` not covered
[INFO] [stdout]    --> src/types.rs:218:15
[INFO] [stdout]     |
[INFO] [stdout] 218 |         match proto::TypeCode::from_i32(value.code) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ patterns `Some(TypeCode::Float32)`, `Some(TypeCode::Proto)` and `Some(TypeCode::Enum)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `std::option::Option<TypeCode>` defined here
[INFO] [stdout]    --> /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:593:1
[INFO] [stdout]    ::: /rustc/82310651b93a594a3fd69015e1562186a080d94c/library/core/src/option.rs:601:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: not covered
[INFO] [stdout]     = note: the matched value is of type `std::option::Option<TypeCode>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 269 ~             ))),
[INFO] [stdout] 270 ~             Some(TypeCode::Float32) | Some(TypeCode::Proto) | Some(TypeCode::Enum) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0063, E0271, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `spanner-rs` (lib test) due to 30 previous errors; 5 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "d7e1a9bc946f511ae2d31624ba716fe3f4ee5de5a840dc37df267f7951ed5b85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7e1a9bc946f511ae2d31624ba716fe3f4ee5de5a840dc37df267f7951ed5b85", kill_on_drop: false }`
[INFO] [stdout] d7e1a9bc946f511ae2d31624ba716fe3f4ee5de5a840dc37df267f7951ed5b85
